create or replace function f_security_desensitization_resume_0001(col text) RETURNS text AS $$
declare
   size INTEGER := length(col);
   block_len INTEGER := size / 3;
   shuffle INTEGER := block_len / 3;
   -- 原始顺序： 后面数据 前面数据 中间数据
   col_back text := substring(col, block_len + 1, size - block_len * 2);
   col_front text := right(col, block_len);
   col_mid text := left(col, block_len);
begin
   --中间数据还原， 最右边n个顺序放在最前面
   col_mid := right(col_mid, shuffle) || left(col_mid, block_len - shuffle); 
   --后面数据置换， 最右边n个顺序放在最前面   
   col_back := right(col_back, shuffle) || left(col_back, size - 2 * block_len - shuffle) ; 
   --左边数据置换， 最右边n个顺序放在最前面   
   col_front := right(col_front, shuffle)||left(col_front, block_len - shuffle) ;  
   --前面数据 中间数据 后面数据   
   return col_front || col_mid || col_back ;                                                 
end;
$$ LANGUAGE plpgsql;